package com.mybatis.model;

import java.util.ArrayList;
import java.util.List;

public class AddressExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AddressExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNull() {
            addCriterion("username is null");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNotNull() {
            addCriterion("username is not null");
            return (Criteria) this;
        }

        public Criteria andUsernameEqualTo(String value) {
            addCriterion("username =", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotEqualTo(String value) {
            addCriterion("username <>", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThan(String value) {
            addCriterion("username >", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThanOrEqualTo(String value) {
            addCriterion("username >=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThan(String value) {
            addCriterion("username <", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThanOrEqualTo(String value) {
            addCriterion("username <=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLike(String value) {
            addCriterion("username like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotLike(String value) {
            addCriterion("username not like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameIn(List<String> values) {
            addCriterion("username in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotIn(List<String> values) {
            addCriterion("username not in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameBetween(String value1, String value2) {
            addCriterion("username between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotBetween(String value1, String value2) {
            addCriterion("username not between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeIsNull() {
            addCriterion("address_consignee is null");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeIsNotNull() {
            addCriterion("address_consignee is not null");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeEqualTo(String value) {
            addCriterion("address_consignee =", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeNotEqualTo(String value) {
            addCriterion("address_consignee <>", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeGreaterThan(String value) {
            addCriterion("address_consignee >", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeGreaterThanOrEqualTo(String value) {
            addCriterion("address_consignee >=", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeLessThan(String value) {
            addCriterion("address_consignee <", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeLessThanOrEqualTo(String value) {
            addCriterion("address_consignee <=", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeLike(String value) {
            addCriterion("address_consignee like", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeNotLike(String value) {
            addCriterion("address_consignee not like", value, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeIn(List<String> values) {
            addCriterion("address_consignee in", values, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeNotIn(List<String> values) {
            addCriterion("address_consignee not in", values, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeBetween(String value1, String value2) {
            addCriterion("address_consignee between", value1, value2, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressConsigneeNotBetween(String value1, String value2) {
            addCriterion("address_consignee not between", value1, value2, "addressConsignee");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceIsNull() {
            addCriterion("address_province is null");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceIsNotNull() {
            addCriterion("address_province is not null");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceEqualTo(String value) {
            addCriterion("address_province =", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceNotEqualTo(String value) {
            addCriterion("address_province <>", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceGreaterThan(String value) {
            addCriterion("address_province >", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceGreaterThanOrEqualTo(String value) {
            addCriterion("address_province >=", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceLessThan(String value) {
            addCriterion("address_province <", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceLessThanOrEqualTo(String value) {
            addCriterion("address_province <=", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceLike(String value) {
            addCriterion("address_province like", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceNotLike(String value) {
            addCriterion("address_province not like", value, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceIn(List<String> values) {
            addCriterion("address_province in", values, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceNotIn(List<String> values) {
            addCriterion("address_province not in", values, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceBetween(String value1, String value2) {
            addCriterion("address_province between", value1, value2, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressProvinceNotBetween(String value1, String value2) {
            addCriterion("address_province not between", value1, value2, "addressProvince");
            return (Criteria) this;
        }

        public Criteria andAddressCityIsNull() {
            addCriterion("address_city is null");
            return (Criteria) this;
        }

        public Criteria andAddressCityIsNotNull() {
            addCriterion("address_city is not null");
            return (Criteria) this;
        }

        public Criteria andAddressCityEqualTo(String value) {
            addCriterion("address_city =", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityNotEqualTo(String value) {
            addCriterion("address_city <>", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityGreaterThan(String value) {
            addCriterion("address_city >", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityGreaterThanOrEqualTo(String value) {
            addCriterion("address_city >=", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityLessThan(String value) {
            addCriterion("address_city <", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityLessThanOrEqualTo(String value) {
            addCriterion("address_city <=", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityLike(String value) {
            addCriterion("address_city like", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityNotLike(String value) {
            addCriterion("address_city not like", value, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityIn(List<String> values) {
            addCriterion("address_city in", values, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityNotIn(List<String> values) {
            addCriterion("address_city not in", values, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityBetween(String value1, String value2) {
            addCriterion("address_city between", value1, value2, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressCityNotBetween(String value1, String value2) {
            addCriterion("address_city not between", value1, value2, "addressCity");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictIsNull() {
            addCriterion("address_district is null");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictIsNotNull() {
            addCriterion("address_district is not null");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictEqualTo(String value) {
            addCriterion("address_district =", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictNotEqualTo(String value) {
            addCriterion("address_district <>", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictGreaterThan(String value) {
            addCriterion("address_district >", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictGreaterThanOrEqualTo(String value) {
            addCriterion("address_district >=", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictLessThan(String value) {
            addCriterion("address_district <", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictLessThanOrEqualTo(String value) {
            addCriterion("address_district <=", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictLike(String value) {
            addCriterion("address_district like", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictNotLike(String value) {
            addCriterion("address_district not like", value, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictIn(List<String> values) {
            addCriterion("address_district in", values, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictNotIn(List<String> values) {
            addCriterion("address_district not in", values, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictBetween(String value1, String value2) {
            addCriterion("address_district between", value1, value2, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressDistrictNotBetween(String value1, String value2) {
            addCriterion("address_district not between", value1, value2, "addressDistrict");
            return (Criteria) this;
        }

        public Criteria andAddressAddressIsNull() {
            addCriterion("address_address is null");
            return (Criteria) this;
        }

        public Criteria andAddressAddressIsNotNull() {
            addCriterion("address_address is not null");
            return (Criteria) this;
        }

        public Criteria andAddressAddressEqualTo(String value) {
            addCriterion("address_address =", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressNotEqualTo(String value) {
            addCriterion("address_address <>", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressGreaterThan(String value) {
            addCriterion("address_address >", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressGreaterThanOrEqualTo(String value) {
            addCriterion("address_address >=", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressLessThan(String value) {
            addCriterion("address_address <", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressLessThanOrEqualTo(String value) {
            addCriterion("address_address <=", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressLike(String value) {
            addCriterion("address_address like", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressNotLike(String value) {
            addCriterion("address_address not like", value, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressIn(List<String> values) {
            addCriterion("address_address in", values, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressNotIn(List<String> values) {
            addCriterion("address_address not in", values, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressBetween(String value1, String value2) {
            addCriterion("address_address between", value1, value2, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressAddressNotBetween(String value1, String value2) {
            addCriterion("address_address not between", value1, value2, "addressAddress");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeIsNull() {
            addCriterion("address_zipcode is null");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeIsNotNull() {
            addCriterion("address_zipcode is not null");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeEqualTo(String value) {
            addCriterion("address_zipcode =", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeNotEqualTo(String value) {
            addCriterion("address_zipcode <>", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeGreaterThan(String value) {
            addCriterion("address_zipcode >", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeGreaterThanOrEqualTo(String value) {
            addCriterion("address_zipcode >=", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeLessThan(String value) {
            addCriterion("address_zipcode <", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeLessThanOrEqualTo(String value) {
            addCriterion("address_zipcode <=", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeLike(String value) {
            addCriterion("address_zipcode like", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeNotLike(String value) {
            addCriterion("address_zipcode not like", value, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeIn(List<String> values) {
            addCriterion("address_zipcode in", values, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeNotIn(List<String> values) {
            addCriterion("address_zipcode not in", values, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeBetween(String value1, String value2) {
            addCriterion("address_zipcode between", value1, value2, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressZipcodeNotBetween(String value1, String value2) {
            addCriterion("address_zipcode not between", value1, value2, "addressZipcode");
            return (Criteria) this;
        }

        public Criteria andAddressTelIsNull() {
            addCriterion("address_tel is null");
            return (Criteria) this;
        }

        public Criteria andAddressTelIsNotNull() {
            addCriterion("address_tel is not null");
            return (Criteria) this;
        }

        public Criteria andAddressTelEqualTo(String value) {
            addCriterion("address_tel =", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelNotEqualTo(String value) {
            addCriterion("address_tel <>", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelGreaterThan(String value) {
            addCriterion("address_tel >", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelGreaterThanOrEqualTo(String value) {
            addCriterion("address_tel >=", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelLessThan(String value) {
            addCriterion("address_tel <", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelLessThanOrEqualTo(String value) {
            addCriterion("address_tel <=", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelLike(String value) {
            addCriterion("address_tel like", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelNotLike(String value) {
            addCriterion("address_tel not like", value, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelIn(List<String> values) {
            addCriterion("address_tel in", values, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelNotIn(List<String> values) {
            addCriterion("address_tel not in", values, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelBetween(String value1, String value2) {
            addCriterion("address_tel between", value1, value2, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTelNotBetween(String value1, String value2) {
            addCriterion("address_tel not between", value1, value2, "addressTel");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameIsNull() {
            addCriterion("address_tag_name is null");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameIsNotNull() {
            addCriterion("address_tag_name is not null");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameEqualTo(String value) {
            addCriterion("address_tag_name =", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameNotEqualTo(String value) {
            addCriterion("address_tag_name <>", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameGreaterThan(String value) {
            addCriterion("address_tag_name >", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameGreaterThanOrEqualTo(String value) {
            addCriterion("address_tag_name >=", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameLessThan(String value) {
            addCriterion("address_tag_name <", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameLessThanOrEqualTo(String value) {
            addCriterion("address_tag_name <=", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameLike(String value) {
            addCriterion("address_tag_name like", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameNotLike(String value) {
            addCriterion("address_tag_name not like", value, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameIn(List<String> values) {
            addCriterion("address_tag_name in", values, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameNotIn(List<String> values) {
            addCriterion("address_tag_name not in", values, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameBetween(String value1, String value2) {
            addCriterion("address_tag_name between", value1, value2, "addressTagName");
            return (Criteria) this;
        }

        public Criteria andAddressTagNameNotBetween(String value1, String value2) {
            addCriterion("address_tag_name not between", value1, value2, "addressTagName");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}